package main

import (
	"fmt"
	rand2 "math/rand"
	"time"
)

func main() {
	/*
		1年=365天,day
		1天=24小时,hour
		1小时=60分钟,minute
		1分钟=60秒,second
		1秒=1000毫秒,millisecond
		1毫秒=1000微秒,microsecond μs
		1微秒=1000纳秒,nanosecond ns
		1纳秒=1000皮秒，picosecond ps
	*/
	//获取当前时间
	t1 := time.Now()
	fmt.Printf("%T\n", t1)
	fmt.Println(t1)

	//获取指定时间
	t2 := time.Date(2012, 5, 1, 16, 13, 1, 1, time.Local)
	fmt.Println(t2)

	//time -> string
	s1 := t1.Format("2006年1月2日 15:04:05") //这个转换时间必须是固定的
	fmt.Println(s1)

	//string -> time
	s3 := "1998年05月01日"
	t3, err := time.Parse("2006年01月02日", s3) //模板 被转换的字符串
	if err != nil {
		fmt.Println("err:", err)

	}
	fmt.Println(t3)
	fmt.Printf("%T\n", t3)

	fmt.Println(t1.String())

	//分开读取
	year, month, day := t1.Date()
	fmt.Println(year, month, day)

	hour, min, sec := t1.Clock()
	fmt.Println(hour, min, sec)

	fmt.Println("年", t1.Year())
	fmt.Println("今年第几天", t1.YearDay())
	fmt.Println("月", t1.Month())
	fmt.Println("日", t1.Day())
	fmt.Println("时", t1.Hour())
	fmt.Println("分", t1.Minute())
	fmt.Println("秒", t1.Second())
	fmt.Println("纳秒", t1.Nanosecond())
	fmt.Println("星期几", t1.Weekday())

	//时间戳 秒 纳秒
	fmt.Println(t1.Unix(), t1.UnixNano())

	//时间间隔
	t5 := t1.Add(time.Minute)   //加一分钟
	t6 := t1.Add(5 * time.Hour) //加5小时
	fmt.Println(t5, t6)

	t7 := t1.AddDate(1, 0, 0) //日期
	fmt.Println(t7)

	fmt.Println(t5.Sub(t1)) //时间差值

	rand2.Seed(time.Now().UnixNano()) //设置种子数
	randNum := rand2.Intn(10) + 1     //1-10  左闭右开
	fmt.Println(randNum)
	time.Sleep(time.Duration(randNum) * time.Second) //延迟三秒
	fmt.Println("测试")
}
